package com.tarena.lbs.coupon.service;

import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.pager.BasePageQuery;
import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.coupon.pojo.param.CouponParam;
import com.tarena.lbs.coupon.pojo.query.UserCouponCodeQuery;
import com.tarena.lbs.coupon.pojo.query.UserCouponQuery;
import com.tarena.lbs.coupon.pojo.vo.CouponVO;
import com.tarena.lbs.coupon.pojo.vo.UserCouponsVO;

public interface CouponService {


    PageResult<CouponVO> pageList(BasePageQuery pageQuery) throws BusinessException;

    void saveCoupon(CouponParam couponParam) throws BusinessException;

    CouponVO detail(Integer id) throws BusinessException;

    PageResult<UserCouponsVO> receiveList(UserCouponQuery couponQuery) throws BusinessException;

    UserCouponsVO receiveDetail(UserCouponCodeQuery query) throws BusinessException;

    void useReceive(Integer userId, String couponCode, String orderNo) throws BusinessException;

    void delete(Integer id) throws BusinessException;
}
